package com.slofzx.nuoda.evaluation.version.dto;


import com.slofzx.nuoda.common.dto.PageDTO;

import java.util.Arrays;
import java.util.Set;

/**
 * 项目信息与评价对应视图数据传递类
 *
 * @author nuoda
 * @since 2021-11-23 16:29:19
 */
public class ProjectComputeVersionDTO extends PageDTO {
    private static final long serialVersionUID = 228555042106737489L;
    private String projectName;
    private String projectType;
    /**
     * 油气藏类型
     */
    private String poolType;
    /**
     * 项目级别
     */
    private String grade;
    /**
     * 建设单位
     */
    private String buildOffice;
    /**
     * 所处位置类型
     */
    private String locationType;
    /**
     * 项目状态
     */
    private String state;
    /**
     * 数据id
     */
    private String id;
    /**
     * 评价名称
     */
    private String name;
    /**
     * 项目主键
     */
    private String projectId;
    /**
     * 评价模型主键
     */
    private String modelId;
    /**
     * 建设期年限
     */
    private Integer buildYearCount;
    /**
     * 评价开始年份
     */
    private Integer calculateYearStart;
    /**
     * 评价结束年份
     */
    private Integer calculateYearEnd;
    /**
     * 备注
     */
    private String remark;
    /**
     * 类型
     */
    private String type;
    /**
     * 内部收益率税前
     */
    private Double irrBeforeTax;
    /**
     * 内部收益率税后
     */
    private Double irrAfterTax;
    /**
     * 投资回收期税前
     */
    private Double pbpBeforeTax;
    /**
     * 投资回收期税后
     */
    private Double pbpAfterTax;
    /**
     * 财务净现值税前
     */
    private Double npvBeforeTax;
    /**
     * 财务净现值税后
     */
    private Double npvAfterTax;
    /**
     * 是否截断
     */
    private Boolean cutoff;

    /**
     * 年度
     */
    private Integer year;

//    /**
//     * 收益率开始
//     */
//    private Double irrBg;

    /**
     * 内部收益率范围
     */
    private Double[] irrRange;

    /**
     * 投资回收期范围
     */
    private Double[] pbpRange;

    /**
     * 财务净现值范围
     */
    private Double[] npvRange;
//    /**
//     * 收益率结束
//     */
//    private Double irrEd;

//    /**
//     * 回收期开始
//     */
//    private Double pbpBg;
//    /**
//     * 回收期结束
//     */
//    private Double pbpEd;

    /**
     * 过滤组织机构集合
     */
    private Set<String> filterOfficeSet;


    public ProjectComputeVersionDTO() {
        //默认查询不分页
        this.pageSize = PageDTO.ALL;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public String getPoolType() {
        return poolType;
    }

    public void setPoolType(String poolType) {
        this.poolType = poolType;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getBuildOffice() {
        return buildOffice;
    }

    public void setBuildOffice(String buildOffice) {
        this.buildOffice = buildOffice;
    }

    public String getLocationType() {
        return locationType;
    }

    public void setLocationType(String locationType) {
        this.locationType = locationType;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public Integer getBuildYearCount() {
        return buildYearCount;
    }

    public void setBuildYearCount(Integer buildYearCount) {
        this.buildYearCount = buildYearCount;
    }

    public Integer getCalculateYearStart() {
        return calculateYearStart;
    }

    public void setCalculateYearStart(Integer calculateYearStart) {
        this.calculateYearStart = calculateYearStart;
    }

    public Integer getCalculateYearEnd() {
        return calculateYearEnd;
    }

    public void setCalculateYearEnd(Integer calculateYearEnd) {
        this.calculateYearEnd = calculateYearEnd;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Double getIrrBeforeTax() {
        return irrBeforeTax;
    }

    public void setIrrBeforeTax(Double irrBeforeTax) {
        this.irrBeforeTax = irrBeforeTax;
    }

    public Double getIrrAfterTax() {
        return irrAfterTax;
    }

    public void setIrrAfterTax(Double irrAfterTax) {
        this.irrAfterTax = irrAfterTax;
    }

    public Double getPbpBeforeTax() {
        return pbpBeforeTax;
    }

    public void setPbpBeforeTax(Double pbpBeforeTax) {
        this.pbpBeforeTax = pbpBeforeTax;
    }

    public Double getPbpAfterTax() {
        return pbpAfterTax;
    }

    public void setPbpAfterTax(Double pbpAfterTax) {
        this.pbpAfterTax = pbpAfterTax;
    }

    public Double getNpvBeforeTax() {
        return npvBeforeTax;
    }

    public void setNpvBeforeTax(Double npvBeforeTax) {
        this.npvBeforeTax = npvBeforeTax;
    }

    public Double getNpvAfterTax() {
        return npvAfterTax;
    }

    public void setNpvAfterTax(Double npvAfterTax) {
        this.npvAfterTax = npvAfterTax;
    }

    public Boolean getCutoff() {
        return cutoff;
    }

    public void setCutoff(Boolean cutoff) {
        this.cutoff = cutoff;
    }

    public Integer getYear() {
        return year;
    }

    public void setYear(Integer year) {
        this.year = year;
    }


    public Set<String> getFilterOfficeSet() {
        return filterOfficeSet;
    }

    public void setFilterOfficeSet(Set<String> filterOfficeSet) {
        this.filterOfficeSet = filterOfficeSet;
    }

    public Double[] getIrrRange() {
        return irrRange;
    }

    public void setIrrRange(Double[] irrRange) {
        this.irrRange = irrRange;
    }

    public Double[] getPbpRange() {
        return pbpRange;
    }

    public void setPbpRange(Double[] pbpRange) {
        this.pbpRange = pbpRange;
    }

    public Double[] getNpvRange() {
        return npvRange;
    }

    public void setNpvRange(Double[] npvRange) {
        this.npvRange = npvRange;
    }

    @Override
    public String toString() {
        return "ProjectComputeVersionDTO{" +
                "projectName='" + projectName + '\'' +
                ", projectType='" + projectType + '\'' +
                ", poolType='" + poolType + '\'' +
                ", grade='" + grade + '\'' +
                ", buildOffice='" + buildOffice + '\'' +
                ", locationType='" + locationType + '\'' +
                ", state='" + state + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", projectId='" + projectId + '\'' +
                ", modelId='" + modelId + '\'' +
                ", buildYearCount=" + buildYearCount +
                ", calculateYearStart=" + calculateYearStart +
                ", calculateYearEnd=" + calculateYearEnd +
                ", remark='" + remark + '\'' +
                ", type='" + type + '\'' +
                ", irrBeforeTax=" + irrBeforeTax +
                ", irrAfterTax=" + irrAfterTax +
                ", pbpBeforeTax=" + pbpBeforeTax +
                ", pbpAfterTax=" + pbpAfterTax +
                ", npvBeforeTax=" + npvBeforeTax +
                ", npvAfterTax=" + npvAfterTax +
                ", cutoff=" + cutoff +
                ", year=" + year +
                ", irrRange=" + Arrays.toString(irrRange) +
                ", pbpRange=" + Arrays.toString(pbpRange) +
                ", npvRange=" + Arrays.toString(npvRange) +
                ", filterOfficeSet=" + filterOfficeSet +
                ", pageNo=" + pageNo +
                ", pageSize=" + pageSize +
                ", count=" + count +
                '}';
    }
}
